找传奇、传世资源到传世资源站!

鼠标全局事件

8.5玩家评分(1人评分)
下载后可评
介绍 评论 失效链接反馈

鼠标全局事件 C#语言基础-第1张using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;namespace MouseEventTrap{/// <summary>/// Form1 的摘要说明。/// </summary>public class Form1 : System.Windows.Forms.Form{/// <summary>/// 必需的设计器变量。/// </summary>private System.ComponentModel.Container components = null;public Form1(){//// Windows 窗体设计器支持所必需的//InitializeComponent();//// TODO: 在 InitializeComponent 调用后添加任何构造函数代码//}/// <summary>/// 清理所有正在使用的资源。/// </summary>protected override void Dispose( bool disposing ){if( disposing ){if (components != null) {components.Dispose();}}base.Dispose( disposing );}#region Windows Form Designer generated code/// <summary>/// 设计器支持所需的方法 - 不要使用代码编辑器修改/// 此方法的内容。/// </summary>private void InitializeComponent(){this.label1 = new System.Windows.Forms.Label();this.textBox1 = new System.Windows.Forms.TextBox();this.SuspendLayout();// // label1// this.label1.Location = new System.Drawing.Point(20, 9);this.label1.Name = "label1";this.label1.Size = new System.Drawing.Size(492, 37);this.label1.TabIndex = 0;this.label1.Text = "本程序示范如何在C#/.NET中处理 WM_NCLBUTTONDOWN,看效果请用鼠标点击标题栏。";// // textBox1// this.textBox1.Location = new System.Drawing.Point(10, 56);this.textBox1.Multiline = true;this.textBox1.Name = "textBox1";this.textBox1.ReadOnly = true;this.textBox1.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;this.textBox1.Size = new System.Drawing.Size(512, 249);this.textBox1.TabIndex = 1;this.textBox1.Text = "";this.textBox1.TextChanged = new System.EventHandler(this.textBox1_TextChanged);// // Form1// this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);this.ClientSize = new System.Drawing.Size(532, 315);this.Controls.AddRange(new System.Windows.Forms.Control[] { this.textBox1, this.label1});this.Name = "Form1";this.Text = "MouseEventTrap";this.ResumeLayout(false);/*this.components = new System.ComponentModel.Container();this.Size = new System.Drawing.Size(300,300);this.Text = "Form1";*/}#endregionprivate System.Windows.Forms.Label label1;private System.Windows.Forms.TextBox textBox1;// Array index corresponds to winuser.h value. E.g., in winuser.h:// #define HTCLIENT 1// #define HTCAPTION 2// etc.//private String[] HITCODES = {"HTNOWHERE","HTCLIENT","HTCAPTION","HTSYSMENU","HTGROWBOX","HTMENU","HTHSCROLL","HTVSCROLL","HTMINBUTTON","HTMAXBUTTON","HTLEFT","HTRIGHT","HTTOP","HTTOPLEFT","HTTOPRIGHT","HTBOTTOM","HTBOTTOMLEFT","HTBOTTOMRIGHT","HTBORDER","HTOBJECT","HTCLOSE","HTHELP"};// 重载虚拟 WndProc 以截获任何消息protected override void WndProc(ref Message m) {// 该值来自 Windows SDK 文件 winuser.hconst int WM_NCLBUTTONDOWN = 0x00A1;// 侦听操作系统消息switch (m.Msg) {case WM_NCLBUTTONDOWN:Point p = new Point((int)m.LParam);String msg = String.Format("WM_NCLBUTTONDOWN: p=({0},{1}), hitcode={2}\r\n",p.X, p.Y, HITCODES[(int)m.WParam]);this.textBox1.Text = msg;break; }base.WndProc(ref m); // 不要忘了调用基类成员函数!}/// <summary>/// 应用程序的主入口点。/// </summary>[STAThread]static void Main() {Application.Run(new Form1());}private void textBox1_TextChanged(object sender, System.EventArgs e){}}}

评论

发表评论必须先登陆, 您可以 登陆 或者 注册新账号 !


在线咨询: 问题反馈
客服QQ:174666394

有问题请留言,看到后及时答复